In modern computing systems, servers and storage devices, such as disks, optical drives, and tape drives, may be located remotely from each other. The servers may be connected to the storage devices through a network fabric which allows data to be transferred between the servers and the storage devices. One such fabric is a Serial Attached Small Computer Systems Interface (SAS) fabric. In order to limit which servers may communicate with which storage devices, the SAS provides the ability to place the servers and storage devices into zones. Only servers and storage devices that are in the same zone are allowed to communicate.
Zoning is accomplished though zone permissions tables. A SAS fabric may contain expanders, which have a plurality of ports, referred to as PHYs. The servers and storage devices connect to the PHYs. The expander is able to route data between the PHYs. The zone permissions tables determine which PHYs, and thus which servers and storage devices, are allowed to communicate with each other. It may become necessary at times to reconfigure which servers are allowed to communicate with which storage devices. For example, a new storage device or server may be added and connectivity provided to that device must be configured. As another example, a storage device or server that was in a first zone may need to be reconfigured to belong to a different zone.
In order to perform this rezoning operation, a SAS zone manager may be used. In a typical rezoning operation, the SAS Zone manager may configure a shadow copy of the zone permissions tables to reflect the newly configured zones. The shadow copy of the zone permissions table is not made active while the SAS zone manager is configuring the table. Once the configuration is complete, the SAS zone manager may deactivate the zone permissions table and substitute the shadow copy, thus causing the new zone permissions to take effect. Once the activation occurs, each server may initiate a fabric discovery process to determine the new topology of the SAS fabric. During this process, the servers may determine to which storage devices access has been granted.